package com.upstairstechnology.oi.determination;

import java.io.IOException;
import java.util.Set;

/**
 * Represents a formula for determining outstanding integrations.
 * 
 * @author Jeff Jensen
 */
public interface DeterminationStrategy {
    /**
     * Determine the outstanding integrations.
     * 
     * @param integrationCheckSet
     *            The set of potential integrations to check for.
     * 
     * @return The set of outstanding integrations found for the check set.
     * @throws IOException
     *             On processing errors. This is implementation dependent.
     */
    Set<OutstandingIntegration> determineOutstandingIntegrations(
            Set<IntegrationCheck> integrationCheckSet) throws IOException;
}
